Industrial controllers are special-purpose computers utilized for controlling industrial processes, manufacturing equipment, and other factory automation, such as data collection or networked systems. Controllers often work in concert with other computer systems to form an environment whereby a majority of modern and automated manufacturing operations occur. These operations involve front-end processing of materials such as steel production to more intricate manufacturing processes such as automobile production that involves assembly of previously processed materials. Often such as in the case of automobiles, complex assemblies can be manufactured with high technology robotics assisting the industrial control process.
In many automated processes, including the basic production of commodities such as food, beverages, and pharmaceuticals, complex state logic is often designed and programmed by systems Engineers or provided in some cases by automated equipment manufacturers. This logic is often programmed with common PLC ladder logic or higher level languages supported by Sequential Function Charts. Sequence logic can be employed for a plurality of tasks such as material movement and conveying operations, packaging operations, or as part of an assembly process itself, wherein various stages of an assembly are sequenced from stage to stage until a final assembly occurs. As can be appreciated, much planning and design is required to implement an automated production process that can involve hundreds of machines, computers, and program logic to facilitate proper operation of the respective sequences.
One problem in implementing a state-driven system is that there are sometimes thousands of rungs of logic that have to be designed and debugged before an automated manufacturing process can be validated. Some control manufacturers have attempted to mitigate this problem by providing portions of these programs to Engineers who then implement or modify such programs for a particular industrial control process. This type of approach while aiding in code development time still has several drawbacks. In one case, code that is provided and subsequently entered and/or modified is subject to human error during implementation of the control process. This code also is routinely debugged each time a new industrial process is set up. Moreover, highly regulated industries such as pharmaceuticals require code to be validated. Thus, during an installation phase of the respective code or logic, code that has been debugged during previous automation endeavors has to be re-validated. As can be appreciated, costs from errors, debugging, and validation are multiplied each time a new manufacturing process is set up or installed.
Another problem with conventional control systems relates to how state operations are managed between controllers and other components such as batch processors that interact with the controllers. Presently, rigid style control architectures exist where duplicate state machines run substantially in parallel on the controller and the batch processor. While this may serve some limited control needs, this type architecture limits the type of control that can be deployed in modern industrial processes. For instance, adding additional control members such as other controllers to an existing process would require the design of an additional state machine in the controller and the batch processor that would have to be somehow integrated with the existing duplicate machinery already in place which is tedious and costly at best and may not be practical at worst. Also, current systems tend to be coded without substantial regard for the need for human and/or machine interaction with the respective state machines and processes which makes it exceedingly difficult to design, maintain, and/or modify existing systems for other processing needs.